package api

type (
    WechatLoginRequest struct {
        Code string `json:"code"`
    }

    WechatLoginResponse struct {
        Openid     string `json:"openid"`
        SessionKey string `json:"session_key"`
        Unionid    string `json:"unionid"`
        Errcode    string `json:"errcode"`
        Errmsg     string `json:"errmsg"`
    }
)

type (
    OssPutObjectRemoteUrlResponse struct {
        FileUrl string `json:"file_url"`
        Object  string `json:"object"`
    }
)

type (
    PhotoSpecCommonResponse struct {
        Code  int    `json:"code"`
        Error string `json:"error"`
    }

    PhotoSpecBackgroundColor struct {
        StartColor uint64 `json:"start_color"`
        ColorName  string `json:"color_name"`
        EncColor   uint64 `json:"enc_color"`
    }

    PhotoSpecCutCheckPicRequest struct {
        File            string                     `json:"file"`
        SpecId          uint64                     `json:"spec_id"`
        IsFair          int8                       `json:"is_fair"`
        FairLevel       int8                       `json:"fair_level"`
        BackgroundColor []PhotoSpecBackgroundColor `json:"background_color"`
    }

    NotCheckResult struct {
        CheckParam   string `json:"check_param"`
        ParamMessage string `json:"param_message"`
        CheckValue   uint64 `json:"check_value"`
    }

    PhotoSpecCutCheckPicResponse struct {
        PhotoSpecCommonResponse
        NotCheckResults []NotCheckResult `json:"not_check_result"`
        Result struct {
            Check           int8     `json:"check"`
            FileNameWm      []string `json:"file_name_wm"`
            FileNamePrintWm []string `json:"file_name_print_wm"`
            FileName        []string `json:"file_name"`
        } `json:"result"`
    }

    PhotoSpecCutChangeClothesRequest struct {
        File            string                     `json:"file"`
        SpecId          uint64                     `json:"spec_id"`
        IsFair          int8                       `json:"is_fair"`
        FairLevel       int8                       `json:"fair_level"`
        Clothes         string                     `json:"clothes"`
        BackgroundColor []PhotoSpecBackgroundColor `json:"background_color"`
    }

    PhotoSpecCutChangeClothesResponse struct {
        PhotoSpecCommonResponse
        FinalPicName  []string `json:"final_pic_name"`
        WmPicUrl      []string `json:"wm_pic_url"`
        PrintWmPicUrl []string `json:"print_wm_pic_url"`
    }

    PhotoSpecCutPicRequest struct {
        File            string                     `json:"file"`
        SpecId          uint64                     `json:"spec_id"`
        IsFair          int8                       `json:"is_fair"`
        FairLevel       int8                       `json:"fair_level"`
        BackgroundColor []PhotoSpecBackgroundColor `json:"background_color"`
    }

    PhotoSpecCutPicResponse struct {
        PhotoSpecCommonResponse
        Result struct {
            Check      int8     `json:"check"`
            FileNameWm []string `json:"file_name_wm"`
            FileName   []string `json:"file_name"`
        } `json:"result"`
    }

    PhotoSpecEnvPicRequest struct {
        File            string                     `json:"file"`
    }

    PhotoSpecEnvPicResponse struct {
        PhotoSpecCommonResponse
        Result struct {
            Facepose       int8 `json:"facepose"`
            Eyegaze        int8 `json:"eyegaze"`
            Eyeskew        int8 `json:"eyeskew"`
            Shoulderskew   int8 `json:"shoulderskew"`
            Darkillum      int8 `json:"darkillum"`
            Unbalanceillum int8 `json:"unbalanceillum"`
            Bfsimilarity   int8 `json:"bfsimilarity"`
        } `json:"result"`
    }
)

type (
    IdcardCommonResponse struct {
        Code int64 `json:"code"`
        Msg  string `json:"msg"`
    }

    IdcardGetListItem struct {
        ItemId     string `json:"item_id"`
        CategoryId string `json:"category_id"`
        Name       string `json:"name"`
        Color      string `json:"color"`
        WidthPx    string `json:"width_px"`
        HeightPx   string `json:"height_px"`
        WidthMm    string `json:"width_mm"`
        HeightMm   string `json:"height_mm"`
        Dpi        string `json:"dpi"`
    }

    IdcardGetListResponse struct {
        IdcardCommonResponse
        Data []IdcardGetListItem `json:"data"`
    }

    IdcardDetailRequest struct {
        ItemId string `json:"item_id"`
    }

    IdcardDetailResponse struct {
        IdcardCommonResponse
        Data struct {
            Id         string `json:"id"`
            CategoryId string `json:"category_id"`
            Name       string `json:"name"`
            Color      string `json:"color"`
            WidthPx    string `json:"width_px"`
            HeightPx   string `json:"height_px"`
            WidthMm    string `json:"width_mm"`
            HeightMm   string `json:"height_mm"`
            Dpi        string `json:"dpi"`
        } `json:"data"`
    }

    IdcardEnvMakeRequest struct {
        ItemId string `json:"item_id"`
        Image  string `json:"image"`
        Color  string `json:"color"`
        Beauty string `json:"beauty"`
    }

    IdcardEnvMakeResponse struct {
        IdcardCommonResponse
        Data struct {
            List  map[string]string `json:"list"`
            PicId uint64            `json:"pic_id"`
        } `json:"data"`
    }

    IdcardChangeClothRequest struct {
        PicId   uint64 `json:"pic_id"`
        Color   string `json:"color"`
        Clothes string `json:"clothes"`
    }

    IdcardChangeClothResponse struct {
        IdcardCommonResponse
        Data struct {
            Pic   string `json:"pic"`
            PicId uint64 `json:"pic_id"`
        } `json:"data"`
    }

    IdcardEnvMakeWmRequest struct {
        ItemId string `json:"item_id"`
        Image  string `json:"image"`
        Color  string `json:"color"`
        Beauty string `json:"beauty"`
    }

    IdcardEnvMakeWmResponse struct {
        IdcardCommonResponse
        Data struct {
            List  map[string]string `json:"list"`
            PicId uint64            `json:"pic_id"`
        } `json:"data"`
    }

    IdcardChangeClothWmRequest struct {
        PicId   uint64 `json:"pic_id"`
        Color   string `json:"color"`
        Clothes string `json:"clothes"`
    }

    IdcardChangeClothWmResponse struct {
        IdcardCommonResponse
        Data struct {
            Pic   string `json:"pic"`
            PicId uint64 `json:"pic_id"`
        } `json:"data"`
    }
)